package com.gljx.web.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.gljx.web.Entity.User;
import org.springframework.stereotype.Component;

@Component
public interface UserMapper {

	/**
	 * 根据账户查用户
	* @param userName
	* @return
	* @author LiXiang  @date 2017年10月24日 下午1:35:15
	 */
	User selectByPrimaryKey(@Param("userName")String userName,@Param("PID")String PID);
    
    /**
     * 用户修改自己密码
    * @param name
    * @param oldPassword
    * @param newPassword
    * @return
    * @author LiXiang  @date 2017年9月25日 上午11:25:41
     */
    int userSetPassWord(User user);
    
    /**
     * 查询
    * @param user
    * @return
    * @author LiXiang  @date 2017年10月24日 下午1:35:06
     */
    User selectUser (User user);
    
    /**
     * 插入
    * @param user
    * @return
    * @author LiXiang  @date 2017年10月24日 下午1:35:00
     */
    int insertSelective(User user);
    
    /**
     * 查询用户
    * @param dataMap
    * @return
    * @author LiXiang  @date 2017年10月24日 下午4:42:17
     */
    public Map <String,Object > selectBIUser(Map <String,Object > dataMap);
    
    /**
     * 插入并返回数据
    * @param dataMap
    * @return
    * @author LiXiang  @date 2017年10月26日 上午8:39:55
     */
    public Map <String,Object > insertUser(Map <String,Object > dataMap);
    
    /**
     * 修改
    * @param user
    * @return
    * @author LiXiang  @date 2017年10月26日 上午10:07:26
     */
    public Integer updateUser(User user);
    
    /**
     * 批量授权
    * @param users
    * @return
    * @author LiXiang  @date 2017年10月27日 下午1:41:13
     */
    public Integer powerUser(List<User> users);
    
    /**
     * 批量添加用户项目关联关系
    * @param users
    * @return
    * @author LiXiang  @date 2017年10月28日 上午9:13:49
     */
    public Integer setProject(@Param("list")List<User> users,@Param("PID")String PID);
    
    /**
     * 删除项目关联关系
    * @param users
    * @return
    * @author LiXiang  @date 2017年10月28日 上午10:19:03
     */
    public Integer deleteProject(@Param("list")List<User> users,@Param("PID")String PID);
    
    /**
     * 修改关联表时修改用户的修改人
    * @param users
    * @return
    * @author LiXiang  @date 2017年10月30日 下午5:19:50
     */
    public Integer updateUpdateId(@Param("list")List<User> users);
    
    public User selectUserData(@Param("id")Integer id,@Param("PID")String PID);
    List<User> selectUserByCompanyId(String companyId);
    
	 List<User> selectUserByCompanyIdAndName(Map<String, String>map);
    /**
     * 该用户未拥有的权限
    * @param id
    * @param menuName
    * @param PID
    * @param name
    * @return
    * @author LiXiang  @date 2017年12月11日 下午2:47:33
     */
	List<Map<String,Object>> findHandle(@Param("id")Integer id,
										@Param("menuName")String menuName,
										@Param("PID")String PID,
										@Param("handName")String name);
	User selectUserByFid(String fid);
	List<User> queryUserTypeByCompanyId(String fcompanyid);
	List<User> selectUserByNameForJournal(Map<String, Object> map);
}